/*
 * alignContainerV.h
 *
 *  Created on: 2011-09-08
 *      Author: pawel
 */

#ifndef ALIGNCONTAINERV_H_
#define ALIGNCONTAINERV_H_

#include<ext/slist>
#include <pthread.h>

class align;
namespace bpp{
class BasicSequence;
}
/*
 * alingContainerV is interface to alingContainer* classes;
 */
class alignContainerV{
private:
	pthread_mutex_t *mutex;
public:
	virtual const __gnu_cxx::slist<int>& getScoreList()const=0;
	/*
	 * Object take ownership of object pointed by align
	 */
	virtual void pushAlign(align* &align)=0;
	alignContainerV();
	virtual ~alignContainerV()=0;

	pthread_mutex_t* getMutex()const;
};


#endif /* ALIGNCONTAINERV_H_ */
